--参数列表
local voucherId = ARGV[1]
local userId = ARGV[2]
local orderId = ARGV[3]
--数据key
local stockKey = 'seckill:stock:'..voucherId
local orderKey = 'seckill:order:'..voucherId
--判断库存是否充足
if (tonumber(redis.call('get',stockKey)) < 1) then
    --库存不足返回1
    return 1;
end
--库存充足 判断用户订单是否存在 set存储 订单id key 值为用户id
if (redis.call('sismember', orderKey,userId) == 1) then
    --订单存在返回2
    return 2;
end
--库存充足且订单不存在 扣减库存 将用户id加入当前优惠券set集合中
redis.call('incrby',stockKey,-1) --扣减库存
redis.call('sadd',orderKey,userId)  --下单
--将订单信息加入消息队列 stream.orders xadd stream.orders * k1 v1 k2 v2 ...   *表示消息id由redis自动生成
--redis.call('xadd','stream.orders','*','voucherId',voucherId,'userId',userId,'id',orderId)
return 0;